using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("Cheats")]
	public class Cheats : MonoClass
	{
		public enum QuickLaunchAvailability
		{
			OK,
			FINDING_GAME,
			ACTIVE_GAME,
			SCENE_TRANSITION,
			COLLECTION_NOT_READY
		}

		public enum FriendListType
		{
			FRIEND,
			NEARBY,
			FSG
		}

		[Attribute38("Cheats.QuickLaunchState")]
		public class QuickLaunchState : MonoClass
		{
			public bool m_launching => method_2<bool>("m_launching");

			public bool m_skipMulligan => method_2<bool>("m_skipMulligan");

			public bool m_flipHeroes => method_2<bool>("m_flipHeroes");

			public bool m_mirrorHeroes => method_2<bool>("m_mirrorHeroes");

			public string m_opponentHeroCardId => method_4("m_opponentHeroCardId");

			public QuickLaunchState(IntPtr address, string className)
				: base(address, className)
			{
			}

			public QuickLaunchState(IntPtr address)
				: this(address, "QuickLaunchState")
			{
			}
		}

		public static string CONFIG_INSTANT_GAMEPLAY_KEY => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "Cheats", "CONFIG_INSTANT_GAMEPLAY_KEY");

		public static string CONFIG_INSTANT_CHEAT_COMMANDS_KEY => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "Cheats", "CONFIG_INSTANT_CHEAT_COMMANDS_KEY");

		public static char CONFIG_INSTANT_CHEAT_COMMANDS_DELIMITER => MonoClass.smethod_6<char>(TritonHs.MainAssemblyPath, "", "Cheats", "CONFIG_INSTANT_CHEAT_COMMANDS_DELIMITER");

		public string m_board => method_4("m_board");

		public bool m_loadingStoreChallengePrompt => method_2<bool>("m_loadingStoreChallengePrompt");

		public StoreChallengePrompt m_storeChallengePrompt => method_3<StoreChallengePrompt>("m_storeChallengePrompt");

		public bool m_isGoldenStackingEnabled => method_2<bool>("m_isGoldenStackingEnabled");

		public bool m_isNewCardInPackOpeningEnabled => method_2<bool>("m_isNewCardInPackOpeningEnabled");

		public AlertPopup m_alert => method_3<AlertPopup>("m_alert");

		public QuickLaunchState m_quickLaunchState => method_3<QuickLaunchState>("m_quickLaunchState");

		public bool m_skipSendingGetGameState => method_2<bool>("m_skipSendingGetGameState");

		public static bool s_hasSubscribedToPartyEvents => MonoClass.smethod_6<bool>(TritonHs.MainAssemblyPath, "", "Cheats", "s_hasSubscribedToPartyEvents");

		public List<string> m_lastUtilServerCmd => method_3<Class249>("m_lastUtilServerCmd")?.method_25();

		public static bool ShowFakeBreakingNews => MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "Cheats", "get_ShowFakeBreakingNews", Array.Empty<object>());

		public static bool ShowFakeNerfedCards => MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "Cheats", "get_ShowFakeNerfedCards", Array.Empty<object>());

		public static Logger PartyLogger => MonoClass.smethod_15<Logger>(TritonHs.MainAssemblyPath, "", "Cheats", "get_PartyLogger", Array.Empty<object>());

		public Cheats(IntPtr address, string className)
			: base(address, className)
		{
		}

		public Cheats(IntPtr address)
			: this(address, "Cheats")
		{
		}

		public static Cheats Get()
		{
			return MonoClass.smethod_15<Cheats>(TritonHs.MainAssemblyPath, "", "Cheats", "Get", Array.Empty<object>());
		}

		public static void Initialize()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "Cheats", "Initialize");
		}

		public static void SubscribePartyEvents()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "Cheats", "SubscribePartyEvents");
		}

		public static string Cheat_ShowRewardBoxes(string parsableRewardBags)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "Cheats", "Cheat_ShowRewardBoxes", parsableRewardBags);
		}

		public static void OnProcessCheat_social_PrintPlayer(bool printFullPresence, BnetPlayer player)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "Cheats", "OnProcessCheat_social_PrintPlayer", printFullPresence, player);
		}

		public void OnCollectionManagerReady()
		{
			method_8("OnCollectionManagerReady");
		}

		public void OnMulliganEnded()
		{
			method_8("OnMulliganEnded");
		}

		public string GetBoard()
		{
			return method_13("GetBoard");
		}

		public bool IsGoldenStackingEnabled()
		{
			return method_11<bool>("IsGoldenStackingEnabled", Array.Empty<object>());
		}

		public bool IsNewCardInPackOpeningEnabed()
		{
			return method_11<bool>("IsNewCardInPackOpeningEnabed", Array.Empty<object>());
		}

		public bool IsLaunchingQuickGame()
		{
			return method_11<bool>("IsLaunchingQuickGame", Array.Empty<object>());
		}

		public bool ShouldSkipMulligan()
		{
			return method_11<bool>("ShouldSkipMulligan", Array.Empty<object>());
		}

		public bool ShouldSkipSendingGetGameState()
		{
			return method_11<bool>("ShouldSkipSendingGetGameState", Array.Empty<object>());
		}

		public bool QuickGameFlipHeroes()
		{
			return method_11<bool>("QuickGameFlipHeroes", Array.Empty<object>());
		}

		public bool QuickGameMirrorHeroes()
		{
			return method_11<bool>("QuickGameMirrorHeroes", Array.Empty<object>());
		}

		public string QuickGameOpponentHeroCardId()
		{
			return method_13("QuickGameOpponentHeroCardId");
		}

		public bool HandleKeyboardInput()
		{
			return method_11<bool>("HandleKeyboardInput", Array.Empty<object>());
		}

		public void InitializeImpl()
		{
			method_8("InitializeImpl");
		}

		public AlertPopup.PopupInfo GenerateAlertInfo(string rawArgs)
		{
			return method_14<AlertPopup.PopupInfo>("GenerateAlertInfo", new object[1] { rawArgs });
		}

		public bool OnAlertProcessed(DialogBase dialog, object userData)
		{
			return method_11<bool>("OnAlertProcessed", new object[2] { dialog, userData });
		}

		public void HideAlert()
		{
			method_8("HideAlert");
		}

		public bool HandleQuickPlayInput()
		{
			return method_11<bool>("HandleQuickPlayInput", Array.Empty<object>());
		}

		public void PrintQuickPlayLegend()
		{
			method_8("PrintQuickPlayLegend");
		}

		public string GetQuickPlayMissionName(int missionId)
		{
			return method_12("GetQuickPlayMissionName", new Class276.Enum20[1] { Class276.Enum20.I4 }, missionId);
		}

		public string GetQuickPlayMissionShortName(int missionId)
		{
			return method_12("GetQuickPlayMissionShortName", new Class276.Enum20[1] { Class276.Enum20.I4 }, missionId);
		}

		public string GetQuickPlayMissionNameImpl(int missionId, string columnName)
		{
			return method_13("GetQuickPlayMissionNameImpl", missionId, columnName);
		}

		public QuickLaunchAvailability GetQuickLaunchAvailability()
		{
			return method_11<QuickLaunchAvailability>("GetQuickLaunchAvailability", Array.Empty<object>());
		}

		public void OnSceneLoaded(SceneMgr.Mode mode, PegasusScene scene, object userData)
		{
			method_8("OnSceneLoaded", mode, scene, userData);
		}

		public bool OnFindGameEvent(FindGameEventData eventData, object userData)
		{
			return method_11<bool>("OnFindGameEvent", new object[2] { eventData, userData });
		}

		public string GetChallengeUrl(string type)
		{
			return method_13("GetChallengeUrl", type);
		}

		public void PositionLoginFixedReward(Reward reward)
		{
			method_8("PositionLoginFixedReward", reward);
		}

		public void OnProcessCheat_utilservercmd_OnResponse()
		{
			method_8("OnProcessCheat_utilservercmd_OnResponse");
		}

		public int OnProcessCheat_util_achieves_GetAchieveFromSlotId(int slotId)
		{
			return method_11<int>("OnProcessCheat_util_achieves_GetAchieveFromSlotId", new object[1] { slotId });
		}

		public void OnProcessCheat_util_achieves_ShowQuestPopupsWhenAchieveUpdated(int achieveId)
		{
			method_8("OnProcessCheat_util_achieves_ShowQuestPopupsWhenAchieveUpdated", achieveId);
		}

		public void OnProcessCheat_util_achieves_ShowQuestLog()
		{
			method_8("OnProcessCheat_util_achieves_ShowQuestLog");
		}

		public void Cheat_ShowBannerList()
		{
			method_8("Cheat_ShowBannerList");
		}
	}
}
